package top.yj95.xiets.basic;

import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

/**
 * 文章《<a href="https://blog.csdn.net/xietansheng/article/details/74363460" target="_balnk">JavaSwing_2.4: JCheckBox（复选框）</a>》中的示例代码
 * @author 杨军
 * @since 2023-12-22
 */
public class JCheckBoxDemo {
    
    public static void main(String[] args) {
        JFrame frame = new JFrame("测试窗口");
        frame.setSize(200, 200);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        
        JPanel panel = new JPanel();
        
        // 创建复选框
        JCheckBox checkBox1 = new JCheckBox("菠萝");
        JCheckBox checkBox2 = new JCheckBox("香蕉");
        JCheckBox checkBox3 = new JCheckBox("雪梨");
        JCheckBox checkBox4 = new JCheckBox("荔枝");
        JCheckBox checkBox5 = new JCheckBox("橘子");
        JCheckBox checkBox6 = new JCheckBox("苹果");
        
        // 添加第一个复选框的状态被改变的监听（其他复选框如果需要监听状态改变，则可以按此方法添加监听）
        checkBox1.addChangeListener(e -> {
            JCheckBox checkBox = (JCheckBox) e.getSource(); // 获取事件源（即复选框本身）
            System.out.printf("%s 是否选中：%s\n", checkBox.getText(), checkBox.isSelected());
        });
        
        // 设置默认第一个复选框选中
        checkBox1.setSelected(true);
        
        panel.add(checkBox1);
        panel.add(checkBox2);
        panel.add(checkBox3);
        panel.add(checkBox4);
        panel.add(checkBox5);
        panel.add(checkBox6);
        
        frame.setContentPane(panel);
        frame.setVisible(true);
    }
    
}
